import * as api from '../../api/common'; // 确保正确引入API模块

let timer = null; // 全局定时器变量

Page({
    data: {
        originPhone: '12345678901', // 原手机号，假设这是当前用户的手机号
        password: '', // 密码输入框的值
        newPhone: '', // 新手机号输入框的值
        verificationCode: '', // 验证码输入框的值
        countdown: 0, // 倒计时初始值
    },

    onLoad(options) {
        // 获取缓存中的用户信息
        const userInfo = tt.getStorageSync('info');
        if (userInfo) {
            this.setData({
                originPhone: userInfo.phone
            });
        }
    },

    inputPassword(e) {
        this.setData({
            password: e.detail.value,
        });
    },

    inputNewPhone(e) {
        this.setData({
            newPhone: e.detail.value,
        });
    },

    inputVerificationCode(e) {
        this.setData({
            verificationCode: e.detail.value,
        });
    },

    sendVerificationCode() {
        if (this.data.countdown > 0) {
            return; // 如果正在倒计时，不允许重复发送验证码
        }

        const newPhone = this.data.newPhone.trim();

        if (!this.checkPhoneNumber(newPhone)) {
            tt.showToast({
                title: '请输入正确的新手机号码',
                icon: 'none'
            });
            return;
        }

        // 模拟发送验证码的逻辑，这里假设发送成功
        tt.showToast({
            title: '验证码已发送',
            icon: 'success',
        });

        // 设置倒计时时间为60秒
        this.setData({
            countdown: 60,
        });

        // 启动定时器，每秒减少倒计时时间
        timer = setInterval(() => {
            if (this.data.countdown > 0) {
                this.setData({
                    countdown: this.data.countdown - 1,
                });
            } else {
                clearInterval(timer); // 倒计时结束，清除定时器
            }
        }, 1000);
    },

    checkPhoneNumber(phoneNumber) {
        const reg = /^1\d{10}$/;
        return reg.test(phoneNumber);
    },

    async bindNewPhone() {
        const { originPhone, password, newPhone, verificationCode } = this.data;

        if (!password) {
            tt.showToast({
                title: '请输入密码',
                icon: 'none',
            });
            return;
        }

        if (!newPhone || !this.checkPhoneNumber(newPhone)) {
            tt.showToast({
                title: '请输入正确的新手机号',
                icon: 'none',
            });
            return;
        }

        if (!verificationCode) {
            tt.showToast({
                title: '请输入验证码',
                icon: 'none',
            });
            return;
        }

        try {
            const response = await api.updatePhone({
                originPhone,
                password,
                newPhone,
                verificationCode
            });

            if (response.code === 0) {
                tt.showToast({
                    title: response.msg,
                    icon: 'none'
                });
            } else {
                tt.showToast({
                    title: '绑定成功',
                    icon: 'success',
                });

                // 清空输入框和倒计时
                this.setData({
                    password: '',
                    newPhone: '',
                    verificationCode: '',
                    countdown: 0,
                });

                // 跳转到重新登录页面
                tt.redirectTo({
                    url: '../loginByAccount/index'
                });
            }
        } catch (error) {
            tt.showToast({
                title: '绑定失败，请重试',
                icon: 'none'
            });
            console.error('Failed to update phone:', error);
        }
    },

    cancel() {
        // 取消操作的逻辑
        tt.navigateBack({
            delta: 1,
        });
    },
});
